#include "timerbtn.h"
#include <QMouseEvent>
#include <QDebug>
TimerBtn::TimerBtn(QWidget *parent):
    QPushButton(parent),
    _counter(10)
{
    _timer = new QTimer(this);

    //做一个信号与槽
    //每次超时时候，槽会响应
    connect(_timer, &QTimer::timeout, [this](){
            _counter--;
            if(_counter <= 0){
                _timer->stop();
                _counter = 10;
                this->setText("获取");
                this->setEnabled(true);
                return;
            }
            this->setText(QString::number(_counter));
        });
}

TimerBtn::~TimerBtn()
{
   _timer->stop();
}

void TimerBtn::mouseReleaseEvent(QMouseEvent *e)
{
    if (e->button() == Qt::LeftButton) {
        // 在这里处理鼠标左键释放事件
        qDebug() << "MyButton was released!";
        // 设置为不可用
        this->setEnabled(false);
         this->setText(QString::number(_counter));
        //每隔1秒触发一次超时，这样就会响应那边的槽函数
        _timer->start(1000);
        //触发点击
        emit clicked();
    }
    // 调用基类的mouseReleaseEvent以确保正常的事件处理（如点击效果）
    QPushButton::mouseReleaseEvent(e);
}
